전공 · 모든 회사 / 데이터분석가
Q. SQL 집계함수 질문
MySQL 실습 중 교재에서는 WHERE 지역 IS NULL로 결과가 나오는데, 저는 같은 SQL을 실행하면 0건이 조회됩니다. CSV를 Import해서 사용했고, 데이터셋 차이 때문인지 궁금합니다. 비슷한 경험이 있으신 분 계실까요? 문제는 다음과 같습니다. Q) 지역이 NULL인 고객에 대해 도시별로 고객수와 평균마일리지를 보이세요. 이때 맨 마지막 행에 전체 고객수와 전체 고객에 대한 평균마일리지도 함께 볼 수 있도록 작성하세요. A) SELECT 도시 ,COUNT(*) AS 고객수 ,AVG(마일리지) AS 평균마일리지 FROM 고객 WHERE 지역 IS NULL GROUP BY 도시 WITH ROLLUP;
2026.07.20
답변 3
채택스포스코코전무 ∙ 채택률 77%채택된 답변
안녕하세요. 멘티님. 반갑습니다. 말씀하신 경우는 데이터셋 차이일 가능성이 가장 큽니다. 교재의 예시는 지역 값이 실제로 비어 있는 행이 들어가 있는데 CSV를 가져오실 때 NULL이 아니라 빈 문자열로 들어가면 WHERE 지역 IS NULL에서는 잡히지 않습니다. 현업에서도 비슷하게 자주 보는 부분인데요. IMPORT 과정에서 공백값이 NULL로 인식되지 않고 문자 값으로 들어가는 경우가 있어서 먼저 해당 컬럼에 진짜 NULL이 있는지 확인해보시구요. 필요하면 지역 = '' 조건도 같이 확인해보시면 됩니다. 그리고 문제의 의도상 마지막 전체 행까지 보이게 하려면 지금처럼 GROUP BY 도시에 WITH ROLLUP을 붙이는 방식이 맞습니다. 다만 전체 고객수와 전체 평균마일리지를 보려는 목적이면 NULL 조건으로 걸러진 데이터 기준인지도 다시 확인하셔야 합니다. 즉 지역이 NULL인 고객만 대상으로 도시별 집계가 맞다면 현재 쿼리로 가시면 되고 데이터가 0건이면 IMPORT된 값 자체를 먼저 점검하시는 편이 좋습니다. 이런 경우는 테이블에서 몇 건만 직접 조회해보면 금방 감이 옵니다. 모쪼록 도움이 되셨다면 채택부탁드립니다. 감사합니다.
- PPRO액티브현대트랜시스코전무 ∙ 채택률 100%
채택된 답변
가능성이 가장 높은 원인은 데이터셋 차이입니다. 같은 교재를 사용하더라도 CSV 파일의 버전이 다르거나 데이터를 전처리하는 과정에서 NULL 값이 빈 문자열로 저장되면 WHERE 지역 IS NULL을 실행해도 결과가 0건으로 조회됩니다. 먼저 다음 쿼리를 실행해서 지역 컬럼에 실제 NULL이 존재하는지 확인해 보시는 것이 좋습니다. SELECT COUNT(*) FROM 고객 WHERE 지역 IS NULL 이 결과가 0이라면 현재 데이터에는 NULL이 없는 것입니다. 다음으로 빈 문자열인지 확인해 보세요. SELECT COUNT(*) FROM 고객 WHERE 지역 = '' 이 결과가 나온다면 CSV에서 NULL이 아니라 빈 문자열로 저장된 것입니다. 이 경우에는 WHERE 지역 = ''를 사용해야 합니다. 또한 공백이 들어간 경우도 있으므로 다음 쿼리도 확인해 보는 것이 좋습니다. SELECT COUNT(*) FROM 고객 WHERE TRIM(지역) = '' CSV를 Import할 때 NULL 값이 문자 NULL로 저장되는 경우도 있습니다. 다음도 확인해 보세요. SELECT COUNT(*) FROM 고객 WHERE 지역 = 'NULL' 마지막으로 지역 컬럼의 실제 데이터를 직접 확인하는 것이 가장 빠른 방법입니다. SELECT DISTINCT 지역 FROM 고객 ORDER BY 지역 이 결과를 보면 NULL인지 빈 문자열인지 또는 다른 값으로 저장되었는지 바로 확인할 수 있습니다. 결론적으로 SQL 문법 자체는 맞습니다. 교재의 답안인 WHERE 지역 IS NULL은 지역 컬럼에 실제 SQL NULL 값이 있을 때만 동작합니다. 사용자의 환경에서 0건이 조회된다면 대부분은 데이터셋 버전이 다르거나 CSV Import 과정에서 NULL이 빈 문자열 또는 문자열 NULL로 변환된 경우가 원인입니다. 먼저 위의 확인 쿼리를 순서대로 실행해 보시면 원인을 쉽게 찾을 수 있을 것입니다.
합격 메이트삼성전자코부사장 ∙ 채택률 78%채택된 답변
멘티님. 안녕하세요. CSV 파일을 임포트하는 과정에서 실제 NULL 값이 아니라 빈 문자열이나 공백 혹은 NULL이라는 텍스트가 그대로 들어갔을 확률이 매우 높습니다. 데이터베이스가 이를 진짜 비어있는 값으로 인식하지 못하기 때문에 IS NULL 조건문에서 0건이 조회되는 현상이 발생합니다. 해당 현상을 해결하기 위해서는 WHERE 지역 = '' 와 같이 빈 문자열 조건으로 바꾸어 쿼리를 다시 실행해 보는 방법이 있습니다. 데이터셋 자체를 수정하고 싶다면 해당 컬럼의 빈 부분을 정식 NULL 값으로 업데이트한 후에 기존 책의 예제 SQL을 그대로 돌리면 정상적인 결과가 나옵니다. 응원하겠습니다.
함께 읽은 질문
Q. 인턴 두번에 대한 고민
현재 대기업 계열사이지만 자회사에서 6개월간 진행하는 현장실습을 하고 있습니다! 04년생 여자로, 4-1 재학 중입니다. 남은 한학기는 우선 휴학하려고 하는데 그 휴학하는 기간동안 제가 원하는 금융권 인턴을 해보는 게 맞는지, 차라리 그 시간에 자격증이나 공모전 등의 스펙에 집중하고 남은 한학기 학교를 다닌 다음 취준을 하는 게 맞을지 고민됩니다. 우선 금융권 데이터분석 직무를 목표로 하고 있으며, 현재 회사에서는 마케팅부서에서 SQL로 데이터 추출 후, 엑셀에 정리하여 엑셀로 된 데이터를 분석한 다음 기획까지 하는 분야를 담당하고 있습니다 사실 업무 외에도 다양한 부서의 업무도 가볍게 맡고 있습니다. 매출 관련이나 회원 수 등의 데이터를 통해 다음 프로모션이나 이벤트 등을 어떻게 기획할지 생각하는 쪽이라 제가 원하는 카드사 데이터분석 직무와 아주 조금은 결이 비슷하지 않나.. 생각하고 있긴 한데, 그래도 마케팅 쪽이고.. 또 제대로 된 파이썬을 쓰는 데이터분석 직무는 아니다보
Q. 헬스케어 데이터 분석가 관련 질문 드립니다
안녕하세요. 디지털 헬스케어 분야를 희망하는 대학교 3학년 학생입니다. 저는 이 헬스케어 분야 중에서 RA, 의료 데이터 분석, 마케터,PM 등 다양하게 고민하고 있지만, RA를 제외한 나머지 직업에서 데이터를 다뤄야 한다거 해서 파이썬 크롤링 기초를 조금씩 공부하고 있습니다. 하지만 요즘 상황을 보면 데이터 분야는 석사 이상을 주로 요구하고,메타에서도 데이터 분석 직무를 대규모로 자르는 등의 제 눈에는 앞으로 신입을 채용하지 않을 것으로 보입니다. 앞으로의 미래를 보았을 때 데이터를 기초만 공부하고 저 4개의 직군 중에서 데이터 분석가 분야를 제외하고 고려해야 할 지 고민입니다. 선배님들의 입장에서 데이터 분석 분야의 앞으로의 미래에 대해 현실적인 조언을 듣고 싶습니다.
Q. 데이터분석가를 목표로 준비 중인 4학년 빅데이터분석학 복전생입니다
현재 4학년 1학기를 끝내고 졸업까지 한 학기만 남은 상태입니다. 현재 많이 늦었지만 취준을 준비하면서 대외활동이나 인턴에 도전해보고 있는데 학교 수업에서 배웠던 내용만으로는 도저히 해결이 되지 않습니다. 그럼에도 최근 기상청에서 주관한 대회에 도전해보았는데 저희 팀 자체의 문제도 있었지만 진행하면서 이 방식이 맞는지에 대한 확신이 없었고, 결국 도전하지 않는 것이 좋았을 정도의 처참한 점수를 얻었습니다. 제 계획 상으로는 이번 2학기 학교 수업을 마무리 하고, 남은 1년 간 데이터 부트캠프와 인턴을 하는 것이 목표입니다. 이와 관련해서 1. 현직자분들의 의견이 어떠신지, 2. 제가 대외활동에서 의미 있는 성과를 얻기 위해서는 어떤 것을 추천해주시는지 3. 추천하시는 데이터 부트캠프가 있는지 궁금합니다! 답변 미리 감사드립니다. 좋은 하루되시고 복 받으실 거예요!
궁금증이 남았나요?
빠르게 질문하세요.